package com.状态模式.state1;

import lombok.Data;

/**
 * 环境上下文：内部聚合了一个StateInterface
 *           此StateInterface就是当前状态，可以调用getCurrentState()方法获取
 */
@Data
public class Context extends AbstractStateImpl{

    /**
     * 当前状态，根据业务流程处理，不停的变化
     */
    private StateInterface stateInterface;

    @Override
    public String getCurrentState() {
        return stateInterface.getCurrentState();
    }

    @Override
    public void notPay(Context context) {
        stateInterface.notPay(context);
    }

    @Override
    public void paySuccess(Context context) {
        stateInterface.paySuccess(context);
    }

    @Override
    public void notTake(Context context) {
        stateInterface.notTake(context);
    }

    @Override
    public void compeleted(Context context) {
        stateInterface.compeleted(context);
    }

    @Override
    public void requestRefund(Context context) {
        stateInterface.requestRefund(context);
    }

    @Override
    public void refundSuccess(Context context) {
        stateInterface.refundSuccess(context);
    }
}
